package middleware

//
//func Permission(memberRepo repository.MemberRepository, role model.Role) func(ctx *gin.Context) {
//	return func(ctx *gin.Context) {
//		log.Println("middleware Permission start")
//		userId := handler.UserId(ctx)
//		spaceId := handler.GetSpaceId(ctx)
//		if !model.IsSuperUser(userId) {
//			if spaceId == 0 {
//				_ = ctx.AbortWithError(400, errors.New("未选择空间"))
//				return
//			}
//			spaces, err := memberRepo.GetSpacesByUserId(ctx, userId)
//			if err != nil {
//				_ = ctx.AbortWithError(500, err)
//			}
//			var currRole model.Role
//			for _, item := range spaces {
//				if spaceId == item.SpaceId {
//					currRole = item.Role
//				}
//			}
//			if string(currRole) == "" {
//				_ = ctx.AbortWithError(400, errors.New("空间选择错误"))
//				return
//			}
//			if currRole.Level() < role.Level() {
//				_ = ctx.AbortWithError(403, errors.New("你没有权限访问该空间，请联系相关负责人"))
//				return
//			}
//		}
//		ctx.Next()
//		log.Println("middleware Permission end")
//	}
//}
